#pragma once
#include "Utils.h"
#include "IStates.h"

class States : IStates {
public:
	/*Store state ids and values*/
	std::map<byte, bool> *states = NULL;
	/*iterator of states hashmap*/
	std::map<byte, bool>::iterator it;
	/*Current state of states is actived*/
	byte currentState;
	
	States();
	
	/*Initialize default values for states*/
	virtual void initStates();
	/*Add new state with co-value to states*/
	virtual void addState(byte, bool);
	/*Check and return state value*/
	virtual bool checkState(byte);
	/*Set state value*/
	virtual void setState(byte, bool);
};